package controllers;

import models.*;
import play.*;
import play.mvc.*;

import java.io.File;
import java.util.List;

@With(Secure.class)
public class Utilisateur extends CRUD {

    public static void listeEleves() {
        models.Utilisateur user = models.Utilisateur.find("byEmail", Secure.Security.connected()).first();
        if(user.prof){
            long now = System.currentTimeMillis()/1000;
            models.Sceance sc = models.Sceance.find("professeur = ? AND debut < ? AND fin > ?", user, now, now).first();
            if(sc != null){
            List<models.Utilisateur> eleves = models.Utilisateur.find("byGroupe", sc.getGroupe()).fetch();
                renderArgs.put("sceance", sc);
                renderArgs.put("eleves", eleves);
            }
            render();
        }
        else {
            flash.error("Vous n'avez pas les droits pour accéder à la page.");
            redirect("../../Application/index");
        }
    }

    public static void profilUtil() {
        if (Secure.Security.isConnected()) {
            models.Utilisateur user = models.Utilisateur.find("byEmail", Secure.Security.connected()).first();
            renderArgs.put("user", user);
            String path = ((Play.getVirtualFile("public/images/Utilisateurs/" + user.getId() + ".jpg") != null) ? "/public/images/Utilisateurs/" + user.getId() + ".jpg" : "/public/images/Utilisateurs/profile.jpg");
            renderArgs.put("image", path);
            List<models.Absence> abs  = models.Absence.find("byEleve", user).fetch();
            renderArgs.put("absences", abs);
            render();
        }
    }

    public static void upload(File fichier){
        if(fichier!=null){

            String extention = fichier.getName().substring(fichier.getName().lastIndexOf('.'), fichier.getName().length());
            File newFile=Play.getFile("/public/Shared/" + params.get("abs") + extention);
            fichier.renameTo(newFile);
            fichier.delete();

            models.Absence absence = models.Absence.find("byId", (long) Float.parseFloat(params.get("abs"))).first();
            absence.setJustifie(true);
            absence.save();
            flash.success("Votre absence a bien été justifiée");

        }
        else{
            flash.error("Choisissez un fichier");
        }
        profilUtil();

    }
}
